package negocios;

import negocios.excecoes.CampoNuloOuVazioException;
import negocios.excecoes.LarguraDeCampoException;
import dados.IBancoTamanhoCampos;

public class Unidade {

	private int codigo = 0;
	private String descricao = null;
	private String abreviacao = null;

	
	public Unidade(int c, String d, String a) {
		
		this.setCodigo(c);
		this.setDescricao(d);
		this.setAbreviacao(a);
		
	}
	
	public int getCodigo() {
		
		return this.codigo;
		
	}
	
	public String getDescricao() {
		
		return this.descricao;
		
	}
	
	public String getAbreviacao() {
		
		return this.abreviacao;
		
	}
	
	public void setCodigo(int c) {
		
		this.codigo = c;		
		
	}
	
	public void setDescricao(String d) {
		
		String str = "Descricao da unidade";
		
		if (d == null) {
			
			throw new CampoNuloOuVazioException(str + " nao pode ser nulo!");
			
		} else if (d.equals("")) {
			
			throw new CampoNuloOuVazioException(str + " nao pode ser vazio!");
			
		} else if (d.length() > IBancoTamanhoCampos.TBUNIDADE_DESCRICAO) {
			
			throw new LarguraDeCampoException(str + " nao pode ser maior que " +
					                          IBancoTamanhoCampos.TBUNIDADE_DESCRICAO + "!");
			
		} else {
			
			this.descricao = d;
			
		}			
							
	}
	
	public void setAbreviacao(String a) {
		
		String str = "Abreviacao da unidade";
		
		if (a == null) {
			
			throw new CampoNuloOuVazioException(str + " nao pode ser nulo!");
			
		} else if (a.equals("")) {
			
			throw new CampoNuloOuVazioException(str + " nao pode ser vazio!");
			
		} else if (a.length() > IBancoTamanhoCampos.TBUNIDADE_ABREVIACAO) {
			
			throw new LarguraDeCampoException(str + " nao pode ser maior que " +
					                          IBancoTamanhoCampos.TBUNIDADE_ABREVIACAO + "!");
			
		} else {
			
			this.abreviacao = a;
			
		}
		
	}
	
}
